package model;

import java.util.Vector;

public class Conjunto extends Producto {
	
	private Vector<Producto> productos; 
	private float descuento;

	public Conjunto(String nombre, float descuento, int stock) {
		/*
		 * Es mas barato inicializar el conjunto sin codigo y despues cargarlo
		 * que persistirlo sin precio y despues actualizarlo. Esto se debe a que
		 * el precio se calcula una vez que estan inicializados los productos.
		 * this.codigo = codigo;
		 */
		this.nombre = nombre;
		this.stock = stock;
		this.descuento = descuento;
		this.tipo = "CONJUNTO";
		this.productos = new Vector<Producto>();
		this.precio = 0;
	}
	
	public void setCodigo(int codigo){
		this.codigo = codigo;
	}
	
	public void setPrecio(float precio){
		this.precio = precio;
	}
	
	public Vector<Producto> getProductos() {
		return productos;
	}
	
	public void setProductos(Vector<Producto> productos) {
		this.productos = productos;
	}
	
	public float getDescuento() {
		return descuento;
	}

	public void setDescuento(float descuento) {
		this.descuento = descuento;
	}
	
	/* Metodos de clase */
	
	public void agregarProducto(Producto p){
		productos.add(p);
	}
	
	public float calcularPrecio(){
		float subtotal = 0;
		if (productos.size() > 0){
			for (Producto p: productos){
				subtotal = (subtotal+p.getPrecio());
			}
		}
		if (descuento > 0 && descuento < 1) {
			subtotal = subtotal-(subtotal*descuento);
		} else if (descuento > 1){
			subtotal = subtotal-(subtotal*(descuento/100));
		}
		this.precio = subtotal;
		return subtotal;
	}

}
